/* ------------------------------------------------------------------------------------------------------*/
/* --------------------------------SWAP direction of some fields-----------------------------------------*/
/* ------------------------------------------------------------------------------------------------------*/
{FLOAT x,y;
if(grid==0){
{register int grid_ind1, grid_ind2;

     for (grid_ind2 = ni_2; grid_ind2 < nf_2; ++grid_ind2){
	  y =  yi+(FLOAT)(grid_ind2)*one_dN2;

	 sfield_recv.s_x_0_u[M_A_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_A_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_A_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_A_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_A_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_A_Y][grid_ind2];


	 sfield_recv.s_x_0_u[M_B_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_B_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_B_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_B_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_B_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_B_Y][grid_ind2];


	 sfield_recv.s_x_0_u[M_C_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_C_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_C_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_C_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_C_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_C_Y][grid_ind2];
     }

     for (grid_ind1 = ni_1; grid_ind1 < nf_1; ++grid_ind1){
	  x =  xi+(FLOAT)(grid_ind1)*one_dN1;

	 sfield_recv.s_y_0_u[M_A_Y][grid_ind1]= 
	     sfield_recv.s_y_0_u[M_A_Y][grid_ind1] 
	     + x*sfield_recv.s_y_0_u[M_A_X][grid_ind1];

	 sfield_recv.s_y_1_u[M_A_Y][grid_ind1]= 
	     sfield_recv.s_y_1_u[M_A_Y][grid_ind1] 
	     - x*sfield_recv.s_y_1_u[M_A_X][grid_ind1];


	 sfield_recv.s_y_0_u[M_B_Y][grid_ind1]= 
	     sfield_recv.s_y_0_u[M_B_Y][grid_ind1] 
	     + x*sfield_recv.s_y_0_u[M_B_X][grid_ind1];

	 sfield_recv.s_y_1_u[M_B_Y][grid_ind1]= 
	     sfield_recv.s_y_1_u[M_B_Y][grid_ind1] 
	     - x*sfield_recv.s_y_1_u[M_B_X][grid_ind1];


	 sfield_recv.s_y_0_u[M_C_Y][grid_ind1]= 
	     sfield_recv.s_y_0_u[M_C_Y][grid_ind1] 
	     + x*sfield_recv.s_y_0_u[M_C_X][grid_ind1];

	 sfield_recv.s_y_1_u[M_C_Y][grid_ind1]= 
	     sfield_recv.s_y_1_u[M_C_Y][grid_ind1] 
	     - x*sfield_recv.s_y_1_u[M_C_X][grid_ind1];



     }
 }
};

if(grid==1){
{register int grid_ind1, grid_ind2;
 FLOAT swap;

     for (grid_ind2 = ni_2; grid_ind2 < nf_2; ++grid_ind2){
	  y =  yi+(FLOAT)(grid_ind2)*one_dN2;

	 sfield_recv.s_x_0_u[M_A_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_A_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_A_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_A_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_A_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_A_Y][grid_ind2];


	 sfield_recv.s_x_0_u[M_B_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_B_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_B_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_B_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_B_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_B_Y][grid_ind2];


	 sfield_recv.s_x_0_u[M_C_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_C_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_C_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_C_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_C_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_C_Y][grid_ind2];


     }

   for (grid_ind1 = ni_1; grid_ind1 < nf_1; ++grid_ind1){
	  x =  xi+(FLOAT)(grid_ind1)*one_dN1;

     swap = sfield_recv.s_y_0_u[M_A_X][grid_ind1];
     sfield_recv.s_y_0_u[M_A_X][grid_ind1]= 
                      - sfield_recv.s_y_0_u[M_A_Y][grid_ind1];
     sfield_recv.s_y_0_u[M_A_Y][grid_ind1]= swap
	 - x*sfield_recv.s_y_0_u[M_A_Y][grid_ind1];

     swap = sfield_recv.s_y_1_u[M_A_X][grid_ind1];
     sfield_recv.s_y_1_u[M_A_X][grid_ind1]= 
	 + sfield_recv.s_y_1_u[M_A_Y][grid_ind1];
     sfield_recv.s_y_1_u[M_A_Y][grid_ind1]= - swap
	 - x* sfield_recv.s_y_1_u[M_A_Y][grid_ind1];



     swap = sfield_recv.s_y_0_u[M_B_X][grid_ind1];
     sfield_recv.s_y_0_u[M_B_X][grid_ind1]= 
                      - sfield_recv.s_y_0_u[M_B_Y][grid_ind1];
     sfield_recv.s_y_0_u[M_B_Y][grid_ind1]= swap
	 - x*sfield_recv.s_y_0_u[M_B_Y][grid_ind1];

     swap = sfield_recv.s_y_1_u[M_B_X][grid_ind1];
     sfield_recv.s_y_1_u[M_B_X][grid_ind1]= 
	 + sfield_recv.s_y_1_u[M_B_Y][grid_ind1];
     sfield_recv.s_y_1_u[M_B_Y][grid_ind1]= - swap
	 - x* sfield_recv.s_y_1_u[M_B_Y][grid_ind1];



     swap = sfield_recv.s_y_0_u[M_C_X][grid_ind1];
     sfield_recv.s_y_0_u[M_C_X][grid_ind1]= 
                      - sfield_recv.s_y_0_u[M_C_Y][grid_ind1];
     sfield_recv.s_y_0_u[M_C_Y][grid_ind1]= swap
	 - x*sfield_recv.s_y_0_u[M_C_Y][grid_ind1];

     swap = sfield_recv.s_y_1_u[M_C_X][grid_ind1];
     sfield_recv.s_y_1_u[M_C_X][grid_ind1]= 
	 + sfield_recv.s_y_1_u[M_C_Y][grid_ind1];
     sfield_recv.s_y_1_u[M_C_Y][grid_ind1]= - swap
	 - x* sfield_recv.s_y_1_u[M_C_Y][grid_ind1];



   }
     }
 };

if(grid==2){
{register int grid_ind1, grid_ind2;

     for (grid_ind2 = ni_2; grid_ind2 < nf_2; ++grid_ind2){
	  y =  yi+(FLOAT)(grid_ind2)*one_dN2;

	 sfield_recv.s_x_0_u[M_A_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_A_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_A_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_A_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_A_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_A_Y][grid_ind2];


	 sfield_recv.s_x_0_u[M_B_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_B_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_B_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_B_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_B_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_B_Y][grid_ind2];


	 sfield_recv.s_x_0_u[M_C_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_C_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_C_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_C_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_C_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_C_Y][grid_ind2];

     }

     for (grid_ind1 = ni_1; grid_ind1 < nf_1; ++grid_ind1){
	 x =  xi+(FLOAT)(grid_ind1)*one_dN1;

	 sfield_recv.s_y_0_u[M_A_Y][grid_ind1]= 
	     - sfield_recv.s_y_0_u[M_A_Y][grid_ind1]
	     - x*sfield_recv.s_y_0_u[M_A_X][grid_ind1];
	 sfield_recv.s_y_0_u[M_A_X][grid_ind1]= 
	     - sfield_recv.s_y_0_u[M_A_X][grid_ind1];

	 sfield_recv.s_y_1_u[M_A_Y][grid_ind1]= 
	     - sfield_recv.s_y_1_u[M_A_Y][grid_ind1]
	     + x*sfield_recv.s_y_1_u[M_A_X][grid_ind1];
	 sfield_recv.s_y_1_u[M_A_X][grid_ind1]= 
	     - sfield_recv.s_y_1_u[M_A_X][grid_ind1];

// -------------------

	 sfield_recv.s_y_0_u[M_B_Y][grid_ind1]= 
	     - sfield_recv.s_y_0_u[M_B_Y][grid_ind1]
	     - x*sfield_recv.s_y_0_u[M_B_X][grid_ind1];
	 sfield_recv.s_y_0_u[M_B_X][grid_ind1]= 
	     - sfield_recv.s_y_0_u[M_B_X][grid_ind1];

	 sfield_recv.s_y_1_u[M_B_Y][grid_ind1]= 
	     - sfield_recv.s_y_1_u[M_B_Y][grid_ind1]
	     + x*sfield_recv.s_y_1_u[M_B_X][grid_ind1];
	 sfield_recv.s_y_1_u[M_B_X][grid_ind1]= 
	     - sfield_recv.s_y_1_u[M_B_X][grid_ind1];

// -------------------

	 sfield_recv.s_y_0_u[M_C_Y][grid_ind1]= 
	     - sfield_recv.s_y_0_u[M_C_Y][grid_ind1]
	     - x*sfield_recv.s_y_0_u[M_C_X][grid_ind1];
	 sfield_recv.s_y_0_u[M_C_X][grid_ind1]= 
	     - sfield_recv.s_y_0_u[M_C_X][grid_ind1];

	 sfield_recv.s_y_1_u[M_C_Y][grid_ind1]= 
	     - sfield_recv.s_y_1_u[M_C_Y][grid_ind1]
	     + x*sfield_recv.s_y_1_u[M_C_X][grid_ind1];
	 sfield_recv.s_y_1_u[M_C_X][grid_ind1]= 
	     - sfield_recv.s_y_1_u[M_C_X][grid_ind1];

// -------------------
     }
}
 };

if(grid==3){
{register int grid_ind1, grid_ind2;
 FLOAT swap;

     for (grid_ind2 = ni_2; grid_ind2 < nf_2; ++grid_ind2){
	  y =  yi+(FLOAT)(grid_ind2)*one_dN2;

	 sfield_recv.s_x_0_u[M_A_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_A_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_A_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_A_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_A_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_A_Y][grid_ind2];

// --------------------

	 sfield_recv.s_x_0_u[M_B_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_B_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_B_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_B_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_B_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_B_Y][grid_ind2];

// --------------------

	 sfield_recv.s_x_0_u[M_C_X][grid_ind2]=  
	     sfield_recv.s_x_0_u[M_C_X][grid_ind2] 
	     + y*sfield_recv.s_x_0_u[M_C_Y][grid_ind2];

	 sfield_recv.s_x_1_u[M_C_X][grid_ind2]=  
	     sfield_recv.s_x_1_u[M_C_X][grid_ind2] 
	     - y*sfield_recv.s_x_1_u[M_C_Y][grid_ind2];

// --------------------

     }

   for (grid_ind1 = ni_1; grid_ind1 < nf_1; ++grid_ind1){
	  x =  xi+(FLOAT)(grid_ind1)*one_dN1;

	 swap =  sfield_recv.s_y_0_u[M_A_X][grid_ind1];
     sfield_recv.s_y_0_u[M_A_X][grid_ind1]= 
	 + sfield_recv.s_y_0_u[M_A_Y][grid_ind1];
     sfield_recv.s_y_0_u[M_A_Y][grid_ind1]= - swap
	 + x*sfield_recv.s_y_0_u[M_A_Y][grid_ind1];

	 swap =  sfield_recv.s_y_1_u[M_A_X][grid_ind1];
     sfield_recv.s_y_1_u[M_A_X][grid_ind1]= 
	 - sfield_recv.s_y_1_u[M_A_Y][grid_ind1];
     sfield_recv.s_y_1_u[M_A_Y][grid_ind1]= swap
	 + x*sfield_recv.s_y_1_u[M_A_Y][grid_ind1];

// -------------------------

	 swap =  sfield_recv.s_y_0_u[M_B_X][grid_ind1];
     sfield_recv.s_y_0_u[M_B_X][grid_ind1]= 
	 + sfield_recv.s_y_0_u[M_B_Y][grid_ind1];
     sfield_recv.s_y_0_u[M_B_Y][grid_ind1]= - swap
	 + x*sfield_recv.s_y_0_u[M_B_Y][grid_ind1];

	 swap =  sfield_recv.s_y_1_u[M_B_X][grid_ind1];
     sfield_recv.s_y_1_u[M_B_X][grid_ind1]= 
	 - sfield_recv.s_y_1_u[M_B_Y][grid_ind1];
     sfield_recv.s_y_1_u[M_B_Y][grid_ind1]= swap
	 + x*sfield_recv.s_y_1_u[M_B_Y][grid_ind1];

// -------------------------
	 swap =  sfield_recv.s_y_0_u[M_C_X][grid_ind1];
     sfield_recv.s_y_0_u[M_C_X][grid_ind1]= 
	 + sfield_recv.s_y_0_u[M_C_Y][grid_ind1];
     sfield_recv.s_y_0_u[M_C_Y][grid_ind1]= - swap
	 + x*sfield_recv.s_y_0_u[M_C_Y][grid_ind1];

	 swap =  sfield_recv.s_y_1_u[M_C_X][grid_ind1];
     sfield_recv.s_y_1_u[M_C_X][grid_ind1]= 
	 - sfield_recv.s_y_1_u[M_C_Y][grid_ind1];
     sfield_recv.s_y_1_u[M_C_Y][grid_ind1]= swap
	 + x*sfield_recv.s_y_1_u[M_C_Y][grid_ind1];

// -------------------------
     }
 }
 };

if(grid==4){
{register int grid_ind1, grid_ind2;
 FLOAT swap;

  for (grid_ind1 = ni_1; grid_ind1 < nf_1; ++grid_ind1){
	  x =  xi+(FLOAT)(grid_ind1)*one_dN1;

     sfield_recv.s_y_0_u[M_A_Y][grid_ind1]= 
	        sfield_recv.s_y_0_u[M_A_Y][grid_ind1]
	 + x*sfield_recv.s_y_0_u[M_A_X][grid_ind1];

     sfield_recv.s_y_1_u[M_A_Y][grid_ind1]= 
	 - sfield_recv.s_y_1_u[M_A_Y][grid_ind1]
	 + x*sfield_recv.s_y_1_u[M_A_X][grid_ind1];
     sfield_recv.s_y_1_u[M_A_X][grid_ind1]= 
	 - sfield_recv.s_y_1_u[M_A_X][grid_ind1];

// ---------------------------

     sfield_recv.s_y_0_u[M_B_Y][grid_ind1]= 
	        sfield_recv.s_y_0_u[M_B_Y][grid_ind1]
	 + x*sfield_recv.s_y_0_u[M_B_X][grid_ind1];

     sfield_recv.s_y_1_u[M_B_Y][grid_ind1]= 
	 - sfield_recv.s_y_1_u[M_B_Y][grid_ind1]
	 + x*sfield_recv.s_y_1_u[M_B_X][grid_ind1];
     sfield_recv.s_y_1_u[M_B_X][grid_ind1]= 
	 - sfield_recv.s_y_1_u[M_B_X][grid_ind1];

// ---------------------------

     sfield_recv.s_y_0_u[M_C_Y][grid_ind1]= 
	        sfield_recv.s_y_0_u[M_C_Y][grid_ind1]
	 + x*sfield_recv.s_y_0_u[M_C_X][grid_ind1];

     sfield_recv.s_y_1_u[M_C_Y][grid_ind1]= 
	 - sfield_recv.s_y_1_u[M_C_Y][grid_ind1]
	 + x*sfield_recv.s_y_1_u[M_C_X][grid_ind1];
     sfield_recv.s_y_1_u[M_C_X][grid_ind1]= 
	 - sfield_recv.s_y_1_u[M_C_X][grid_ind1];

// ---------------------------

     }

  for (grid_ind2 = ni_2; grid_ind2 < nf_2; ++grid_ind2){
	  y =  yi+(FLOAT)(grid_ind2)*one_dN2;

     swap = sfield_recv.s_x_0_u[M_A_X][grid_ind2];
     sfield_recv.s_x_0_u[M_A_X][grid_ind2]= 
	 + sfield_recv.s_x_0_u[M_A_Y][grid_ind2]
	 - y*sfield_recv.s_x_0_u[M_A_X][grid_ind2];
     sfield_recv.s_x_0_u[M_A_Y][grid_ind2]= - swap;

     swap = sfield_recv.s_x_1_u[M_A_X][grid_ind2];
     sfield_recv.s_x_1_u[M_A_X][grid_ind2]=  
	 - sfield_recv.s_x_1_u[M_A_Y][grid_ind2] 
	 - y*sfield_recv.s_x_1_u[M_A_X][grid_ind2];
     sfield_recv.s_x_1_u[M_A_Y][grid_ind2]=  swap;

// -----------------------------------

     swap = sfield_recv.s_x_0_u[M_B_X][grid_ind2];
     sfield_recv.s_x_0_u[M_B_X][grid_ind2]= 
	 + sfield_recv.s_x_0_u[M_B_Y][grid_ind2]
	 - y*sfield_recv.s_x_0_u[M_B_X][grid_ind2];
     sfield_recv.s_x_0_u[M_B_Y][grid_ind2]= - swap;

     swap = sfield_recv.s_x_1_u[M_B_X][grid_ind2];
     sfield_recv.s_x_1_u[M_B_X][grid_ind2]=  
	 - sfield_recv.s_x_1_u[M_B_Y][grid_ind2] 
	 - y*sfield_recv.s_x_1_u[M_B_X][grid_ind2];
     sfield_recv.s_x_1_u[M_B_Y][grid_ind2]=  swap;

// -----------------------------------

     swap = sfield_recv.s_x_0_u[M_C_X][grid_ind2];
     sfield_recv.s_x_0_u[M_C_X][grid_ind2]= 
	 + sfield_recv.s_x_0_u[M_C_Y][grid_ind2]
	 - y*sfield_recv.s_x_0_u[M_C_X][grid_ind2];
     sfield_recv.s_x_0_u[M_C_Y][grid_ind2]= - swap;

     swap = sfield_recv.s_x_1_u[M_C_X][grid_ind2];
     sfield_recv.s_x_1_u[M_C_X][grid_ind2]=  
	 - sfield_recv.s_x_1_u[M_C_Y][grid_ind2] 
	 - y*sfield_recv.s_x_1_u[M_C_X][grid_ind2];
     sfield_recv.s_x_1_u[M_C_Y][grid_ind2]=  swap;

// -----------------------------------



  }
}
};


if(grid==5){
{register int grid_ind1, grid_ind2;
 FLOAT swap;


   for (grid_ind1 = ni_1; grid_ind1 < nf_1; ++grid_ind1){
	  x =  xi+(FLOAT)(grid_ind1)*one_dN1;

     sfield_recv.s_y_0_u[M_A_Y][grid_ind1]= 
	 - sfield_recv.s_y_0_u[M_A_Y][grid_ind1]
	 - x*sfield_recv.s_y_0_u[M_A_X][grid_ind1];
     sfield_recv.s_y_0_u[M_A_X][grid_ind1]= 
	 - sfield_recv.s_y_0_u[M_A_X][grid_ind1];

     sfield_recv.s_y_1_u[M_A_Y][grid_ind1]= 
	   sfield_recv.s_y_1_u[M_A_Y][grid_ind1]
	 - x*sfield_recv.s_y_1_u[M_A_X][grid_ind1];

// -----------------------


     sfield_recv.s_y_0_u[M_B_Y][grid_ind1]= 
	 - sfield_recv.s_y_0_u[M_B_Y][grid_ind1]
	 - x*sfield_recv.s_y_0_u[M_B_X][grid_ind1];
     sfield_recv.s_y_0_u[M_B_X][grid_ind1]= 
	 - sfield_recv.s_y_0_u[M_B_X][grid_ind1];

     sfield_recv.s_y_1_u[M_B_Y][grid_ind1]= 
	   sfield_recv.s_y_1_u[M_B_Y][grid_ind1]
	 - x*sfield_recv.s_y_1_u[M_B_X][grid_ind1];

// -----------------------


     sfield_recv.s_y_0_u[M_C_Y][grid_ind1]= 
	 - sfield_recv.s_y_0_u[M_C_Y][grid_ind1]
	 - x*sfield_recv.s_y_0_u[M_C_X][grid_ind1];
     sfield_recv.s_y_0_u[M_C_X][grid_ind1]= 
	 - sfield_recv.s_y_0_u[M_C_X][grid_ind1];

     sfield_recv.s_y_1_u[M_C_Y][grid_ind1]= 
	   sfield_recv.s_y_1_u[M_C_Y][grid_ind1]
	 - x*sfield_recv.s_y_1_u[M_C_X][grid_ind1];

// -----------------------


     }

   for (grid_ind2 = ni_2; grid_ind2 < nf_2; ++grid_ind2){
	  y =  yi+(FLOAT)(grid_ind2)*one_dN2;

     swap = sfield_recv.s_x_0_u[M_A_X][grid_ind2];
     sfield_recv.s_x_0_u[M_A_X][grid_ind2]= 
	 - sfield_recv.s_x_0_u[M_A_Y][grid_ind2]
	 + y*sfield_recv.s_x_0_u[M_A_X][grid_ind2];
     sfield_recv.s_x_0_u[M_A_Y][grid_ind2]= swap;

     swap = sfield_recv.s_x_1_u[M_A_X][grid_ind2];
     sfield_recv.s_x_1_u[M_A_X][grid_ind2]= 
	 + sfield_recv.s_x_1_u[M_A_Y][grid_ind2]
	 + y*sfield_recv.s_x_1_u[M_A_X][grid_ind2];
     sfield_recv.s_x_1_u[M_A_Y][grid_ind2]= - swap;

// ---------------------------------

     swap = sfield_recv.s_x_0_u[M_B_X][grid_ind2];
     sfield_recv.s_x_0_u[M_B_X][grid_ind2]= 
	 - sfield_recv.s_x_0_u[M_B_Y][grid_ind2]
	 + y*sfield_recv.s_x_0_u[M_B_X][grid_ind2];
     sfield_recv.s_x_0_u[M_B_Y][grid_ind2]= swap;

     swap = sfield_recv.s_x_1_u[M_B_X][grid_ind2];
     sfield_recv.s_x_1_u[M_B_X][grid_ind2]= 
	 + sfield_recv.s_x_1_u[M_B_Y][grid_ind2]
	 + y*sfield_recv.s_x_1_u[M_B_X][grid_ind2];
     sfield_recv.s_x_1_u[M_B_Y][grid_ind2]= - swap;

// ---------------------------------

     swap = sfield_recv.s_x_0_u[M_C_X][grid_ind2];
     sfield_recv.s_x_0_u[M_C_X][grid_ind2]= 
	 - sfield_recv.s_x_0_u[M_C_Y][grid_ind2]
	 + y*sfield_recv.s_x_0_u[M_C_X][grid_ind2];
     sfield_recv.s_x_0_u[M_C_Y][grid_ind2]= swap;

     swap = sfield_recv.s_x_1_u[M_C_X][grid_ind2];
     sfield_recv.s_x_1_u[M_C_X][grid_ind2]= 
	 + sfield_recv.s_x_1_u[M_C_Y][grid_ind2]
	 + y*sfield_recv.s_x_1_u[M_C_X][grid_ind2];
     sfield_recv.s_x_1_u[M_C_Y][grid_ind2]= - swap;

// ---------------------------------


     }
}
 }
};


